﻿<?php
/**
 * Zead
 *
 * LICENSE	
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.opensource.org/licenses/bsd-license.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to eu@marcelomx.com so we can send you a copy immediately.
 *
 * @category   Zead
 * @author     Marcelo Rodrigues Gonzaga <eu@marcelomx.com>
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga
 * @link       http://code.google.com/p/zead 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License
 *
 **/


/** @see Zead_Html_Filter_Abstract **/
require_once 'Zead/Html/Filter/Abstract.php';

/**
 * @category   Zead
 * @package    Zead_Html
 * @subpackage Zead_Html_Filter
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License  
 */
class Zead_Html_Filter_HeadingToc extends Zead_Html_Filter_Abstract
{
	/**
	 * Aplica o filtro que tem a função de procurar elementos com o id siteName ou outro
	 * passado como argumento que será o título do site.
	 * @param string $value O título do site
	 * @param string $id O id do elemento a ser alterado.
	 */
	public function filter() 
	{
		foreach (explode(',', 'h1,h2,h3,h4,h5,h6') as $tag) {
			foreach ($this->html->documentElement->select($tag) as $element) {
				if (!$element->hasAttribute('id')) {
					$value = preg_replace("([^a-zA-Z0-9 ])", "", $element->nodeValue);
					$value = strtoupper(preg_replace("/(\s)/", "_", $value));
										
					if ($value != '') {
						$element->setAttribute('id', $value);
					}
				}
			}
		}
	}
}

